//package com.moring.moring.main;
//
//import android.Manifest;
//import android.annotation.SuppressLint;
//import android.app.Activity;
//import android.app.AlertDialog;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.content.pm.PackageManager;
//import android.net.Uri;
//import android.net.http.SslError;
//import android.os.Build;
//import android.os.Bundle;
//import android.text.TextUtils;
//import android.util.Log;
//import android.view.View;
//import android.webkit.JavascriptInterface;
//import android.webkit.SslErrorHandler;
//import android.webkit.ValueCallback;
//import android.webkit.WebChromeClient;
//import android.webkit.WebResourceRequest;
//import android.webkit.WebSettings;
//import android.webkit.WebView;
//import android.webkit.WebViewClient;
//import android.widget.ImageButton;
//import android.widget.ImageView;
//import android.widget.TextView;
//
//import androidx.annotation.NonNull;
//import androidx.annotation.Nullable;
//import androidx.core.app.ActivityCompat;
//import androidx.core.content.ContextCompat;
//
//import com.gyf.immersionbar.ImmersionBar;
//import com.moring.moring.R;
//import com.moring.moring.app.LogUtils;
//import com.moring.moring.base.BaseActivity;
//import com.moring.moring.base.BaseModle;
//import com.moring.moring.base.HttpCallback;
//import com.moring.moring.bean.WebPageContentBean;
//import com.moring.moring.bean.ZiLiPageUserDataBean;
//import com.moring.moring.login.LoginActivity;
//import com.moring.moring.main.modle.PermisosModle;
//import com.moring.moring.util.GsonUtils;
//import com.moring.moring.util.PointMgr;
//import com.moring.moring.util.SharePreUtil;
//import com.moring.moring.view.AndroidBug5497Workaround;
//import com.moring.moring.util.ZhiliDeviceUtils;
//
//import java.io.File;
//import java.lang.reflect.Array;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.Map;
//
//
//public class ComplaintWebViewActivity extends BaseActivity implements ReWebChomeClient.OpenFileChooserCallBack{
//
//    private static final String TAG = "MyActivity";
//    private static final int REQUEST_CODE_PICK_IMAGE = 0;
//    private static final int REQUEST_CODE_IMAGE_CAPTURE = 1;
//    private WebView mWebView;
//    private Intent mSourceIntent;
//    private ValueCallback<Uri> mUploadMsg;
//    private ValueCallback<Uri[]> mUploadMsg5Plus;
//    private ImageButton abBackIBtn;
//    private TextView abTitleTV;
//    private ImageView web_Image;
//    private String name = "";
//    private String phone = "";
//
//    private String type = "";
//
//    @Override
//    public void initImmersionBar() {
//        ImmersionBar.with(this).statusBarDarkFont(true).init();
//    }
//
//    @SuppressLint("JavascriptInterface")
//    @Override
//    protected void onCreate(@Nullable Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        String url = getIntent().getStringExtra("url");
//
//        type = getIntent().getStringExtra("type");
//        name = SharePreUtil.getStringData("webName");
//        phone = SharePreUtil.getStringData("webPhone");
//        setContentView(R.layout.activity_complaint_webview);
//        abBackIBtn = findViewById(R.id.abBackIBtn);
//        mWebView = findViewById(R.id.web_view);
//        abTitleTV = findViewById(R.id.abTitleTV);
//        web_Image = findViewById(R.id.web_Image);
//        abTitleTV.setText("Página web");
//        abBackIBtn.setOnClickListener(v -> finish());
//        LogUtils.logE("url>" + url);
//        mWebView.setWebViewClient(new ReWebViewClient());
//        fixDirPath();
//
//
//
//        WebSettings settings = mWebView.getSettings();
//        settings.setUseWideViewPort(true);
//        settings.setJavaScriptEnabled(true);
//
//        settings.setDomStorageEnabled(true);
//        settings.setAllowFileAccess(true);
//
//        settings.setAllowContentAccess(true);
//        settings.setJavaScriptCanOpenWindowsAutomatically(true);
//        settings.setMediaPlaybackRequiresUserGesture(false);
//
//        settings.setLoadWithOverviewMode(true);
//        settings.setBuiltInZoomControls(true);
//
//        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
//            settings.setDisplayZoomControls(false);
//        }
//
//        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//            mWebView.setWebContentsDebuggingEnabled(true);
//        }
//
//        settings.setAllowFileAccessFromFileURLs(true);
//        settings.setAllowUniversalAccessFromFileURLs(true);
//
//        mWebView.addJavascriptInterface(new JavaScriptInterface(this, mWebView, this),"moniApp");
//        mWebView.setDrawingCacheEnabled(true);
//        mWebView.setWebChromeClient(new ReWebChomeClient(this));
//        AndroidBug5497Workaround.assistActivity(this);
//        if (TextUtils.isEmpty(type)) {
//            mWebView.loadUrl(url);
//            return;
//        }
//        if (type.equals("privacyAgree")) {
//            loadPrivacyAgree(url);
//        } else {
//            mWebView.loadUrl(url);
//        }
//        mWebView.evaluateJavascript("javascript:lwApp.uploadAppEvent(\"video_21_upload_yes\")", new ValueCallback<String>() {
//            @Override
//            public void onReceiveValue(String s) {
//                PointMgr.INSTANCE.sendEvent("cl_video_21_upload_yes");
//                Log.e("PointMgr.INSTANCE.sendEvent", "cl_video_21_upload_yes");
//            }
//        });
//    }
//
//    private void loadPrivacyAgree(String url) {
//        Map<String, String> webContentMap = new HashMap<>();
//        webContentMap.put("pageType","privacyPolicy");
//        showLoading();
//        PermisosModle.Companion.getInstant().getWebPageContent(webContentMap, new HttpCallback() {
//            @Override
//            public void onSuccess(@NonNull String data) {
//                WebPageContentBean webPageContentBean = GsonUtils.INSTANCE.getGson().fromJson(data, WebPageContentBean.class);
//                if (webPageContentBean.getCode().equals("0000") && !TextUtils.isEmpty(webPageContentBean.getData())) {
//                    runOnUiThread(new Runnable() {
//                        @Override
//                        public void run() {
//                            String webContent = webPageContentBean.getData();
//                            mWebView.getSettings().setUseWideViewPort(false);
//                            mWebView.getSettings().setLoadWithOverviewMode(false);
//                            mWebView.loadData(webContent, "text/html","UTF-8");
//                        }
//                    });
//                } else {
//                    mWebView.loadUrl(url);
//                }
//                hideLoading();
//            }
//
//            @Override
//            public void onFaill(@NonNull String e) {
//                hideLoading();
//            }
//        });
//    }
//
//    class MyWebViewClient extends WebViewClient {
//        @Override
//        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//            if (handler != null) {
//                handler.proceed();
//            }
//        }
//
//        @Override
//        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
//            String url = request.getUrl().toString();
//            if (!url.startsWith("http")) {
//                return true;
//            }
//            return super.shouldOverrideUrlLoading(view, request);
//        }
//    }
//    public class WebViewChromeClient extends WebChromeClient implements com.moring.moring.main.WebViewChromeClient {
//        private Context _context;
//        private Activity _m;
//        public WebViewChromeClient(Context context, Activity mainActivity)
//        {
//            _context = context;
//            _m = mainActivity;
//        }
//
//        @Override
//        public void onProgressChanged(WebView view, int newProgress) {
//            super.onProgressChanged(view, newProgress);
//        }
//
//        @Override
//        public void onReceivedTitle(WebView view, String title) {
//            super.onReceivedTitle(view, title);
//            if (TextUtils.isEmpty(type)) {
//                abTitleTV.setText(title);
//                return;
//            }
//            if (type.equals("privacyAgree")) {
//                abTitleTV.setText("Política de privacidad");
//            } else {
//                abTitleTV.setText(title);
//                if ( title.contains("de pago") ){
//                    web_Image.setVisibility(View.GONE);
//                }
//            }
//
//        }
//
//        @Override
//        public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
////            valueCallback = filePathCallback;
////            if ( Build.VERSION.SDK_INT > 32 ){
////                openAlbum();
////            } else {
////                if (ContextCompat.checkSelfPermission(ComplaintWebViewActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
////                    String[] list = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE};
////                    ActivityCompat.requestPermissions(ComplaintWebViewActivity.this, list, 0x1001);
////                } else {
////                    openAlbum();
////                }
////            }
//            return true;
//        }
//
//        private void openAlbum(){
//            Intent intent = new Intent("android.intent.action.GET_CONTENT");
//            intent.setType("image/*");
//            startActivityForResult(intent, 0X101);
//        }
//    }
//
//
//    @Override
//    public void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//        if (resultCode != Activity.RESULT_OK) {
//            return;
//        }
//        switch (requestCode) {
//            case REQUEST_CODE_IMAGE_CAPTURE:
//            case REQUEST_CODE_PICK_IMAGE: {
//                try {
//                    if (mUploadMsg == null && mUploadMsg5Plus == null) {
//                        return;
//                    }
//                    String sourcePath = ImageUtil.retrievePath(this, mSourceIntent, data);
//                    if (TextUtils.isEmpty(sourcePath) || !new File(sourcePath).exists()) {
//                        Log.w(TAG, "sourcePath empty or not exists.");
//                        break;
//                    }
//                    Uri uri = Uri.fromFile(new File(sourcePath));
//                    if (mUploadMsg != null) {
//                        mUploadMsg.onReceiveValue(uri);
//                        mUploadMsg = null;
//                    } else {
//                        mUploadMsg5Plus.onReceiveValue(new Uri[]{uri});
//                        mUploadMsg5Plus = null;
//                    }
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//                break;
//            }
//        }
//    }
//
//    @Override
//    public void openFileChooserCallBack(ValueCallback<Uri> uploadMsg, String acceptType) {
//        mUploadMsg = uploadMsg;
//        showOptions();
//    }
//
//
//    @Override
//    public void showFileChooserCallBack(ValueCallback<Uri[]> filePathCallback) {
//        mUploadMsg5Plus = filePathCallback;
//        showOptions();
//    }
//
//    public void showOptions() {
//        AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
//        alertDialog.setOnCancelListener(new ReOnCancelListener());
//        alertDialog.setTitle("----");
//        String[] options = {"A", "B", "C"};
//        alertDialog.setItems(options, new DialogInterface.OnClickListener() {
//            @Override
//            public void onClick(DialogInterface dialog, int which) {
//                if (which == 0) {
//                    mSourceIntent = ImageUtil.choosePicture();
//                    startActivityForResult(mSourceIntent, REQUEST_CODE_PICK_IMAGE);
//                } else {
//                    mSourceIntent = ImageUtil.takeBigPicture(ComplaintWebViewActivity.this);
//                    startActivityForResult(mSourceIntent, REQUEST_CODE_IMAGE_CAPTURE);
//                }
//            }
//        });
//        alertDialog.show();
//    }
//
//    private void fixDirPath() {
//        String path = ImageUtil.getDirPath();
//        File file = new File(path);
//        if (!file.exists()) {
//            file.mkdirs();
//        }
//    }
//
//
//    private class ReOnCancelListener implements DialogInterface.OnCancelListener {
//
//
//        @Override
//        public void onCancel(DialogInterface dialogInterface) {
//            if (mUploadMsg != null) {
//                mUploadMsg.onReceiveValue(null);
//                mUploadMsg = null;
//            }
//            if (mUploadMsg5Plus != null) {
//                mUploadMsg5Plus.onReceiveValue(null);
//                mUploadMsg5Plus = null;
//            }
//        }
//    }
//
//    public class JavaScriptInterface {
//        private Context context;
//        private WebView webView;
//        private Activity activity;
//        public JavaScriptInterface(Context context, WebView webView, Activity mainActivity)
//        {
//            this.context = context;
//            this.webView = webView;
//            this.activity = mainActivity;
//        }
//
//        @JavascriptInterface
//        public String getMoniInfo(){
//            Log.e("----datagetMoniInfo", "----1");
//            if (isFinishing()){
//                return "";
//            }
//            Log.e("----getMoniInfo", "----2");
//            String result = "";
//            Map<String, Object> headers = new BaseModle().getZiLiPageHead();
//            headers.put("apiHost", "https://backend.moni-cash.com/");
//            headers.put("deviceId", ZhiliDeviceUtils.INSTANCE.getDeviceID(activity));
//            headers.put("strategy", "default");
//            headers.put("country", "51");
//            headers.put("User-Agent", "Retrofit-Sample-App");
//
//            headers.put("phone",phone);
//            headers.put("name",name);
//
////            if ( ZiLiPageUserDataBean.getInstance().getMobile() != null && !ZiLiPageUserDataBean.getInstance().getMobile().isEmpty()){
////                headers.put("phone", ZiLiPageUserDataBean.getInstance().getMobile());
////            } else {
////                headers.put("phone", "");
////            }
////
////            if ( ZiLiPageUserDataBean.getInstance().getLastName() != null && !ZiLiPageUserDataBean.getInstance().getLastName().isEmpty() ){
////                headers.put("name", ZiLiPageUserDataBean.getInstance().getLastName());
////            } else {
////                headers.put("name", "");
////            }
//            result = GsonUtils.INSTANCE.getGson().toJson(headers);
//            Log.e("----result",result);
//            return result;
//        }
//
//        @JavascriptInterface
//        public void toMiFirstPage(){
//            if (isFinishing()){
//                return;
//            }
//            finish();
//        }
//
//        @JavascriptInterface
//        public void tokeNeedRefresh(){
//            if (isFinishing()){
//                return;
//            }
//        }
//
//        @JavascriptInterface
//        public void tokenOverdue(){
//            Intent intent = new Intent(activity, LoginActivity.class);
//            startActivity(intent);
//            finish();
//        }
//
//        @JavascriptInterface
//        public void loadPage(String url, int type){
//            if (isFinishing()){
//                return;
//            }
//            System.out.println("FlyloAn...loadPage"+url);
//            Intent intent = new Intent(activity, ComplaintWebViewActivity.class);
//            intent.putExtra("url", url);
//            startActivity(intent);
//            finish();
//        }
//
//        @JavascriptInterface
//        public void openShare(String url){
//            if (isFinishing()){
//                return;
//            }
//        }
//
//        @JavascriptInterface
//        public void uploadAppEvent(String event){
//            PointMgr.INSTANCE.sendEvent(event);
//            Log.e("PointMgr.INSTANCE.sendEvent", event);
//            if (isFinishing()){
//                return;
//            }
//        }
//
//        @JavascriptInterface
//        public void loanImprest(){
//            if (isFinishing()){
//                return;
//            }
//        }
//
//        @JavascriptInterface
//        public void toMoniHomePage(){
//            LogUtils.logE("---JavaScriptInterface: toMoniHomePage---");
//            finish();
//        }
//    }
//
//    @Override
//    public Activity getActivity() {
//        return null;
//    }
//
//    @Override
//    public void initView() {
//
//    }
//
//
//    @Override
//    public void initData() {
//
//    }
//
//    @Override
//    public void onStop(){
//        super.onStop();
//        hideLoading();
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        try {
//            mWebView.clearCache(true);
//            mWebView.removeJavascriptInterface("moniApp");
//            mWebView.clearFormData();
//            mWebView.clearHistory();
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//    }
//
//}
